<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>fdk-aac: original/libPCMutils/include/pcmdmx_lib.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">fdk-aac
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_ed137715e08969a186ec660e8ae6e2fb.html">original</a></li><li class="navelem"><a class="el" href="dir_58c57ddeb9eddff2ac9ad33467c2dd48.html">libPCMutils</a></li><li class="navelem"><a class="el" href="dir_e4b845d83859f8b83fbb440135725fdc.html">include</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">pcmdmx_lib.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>FDK PCM audio mixdown library interface header file.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="machine__type_8h_source.html">machine_type.h</a>&quot;</code><br />
<code>#include &quot;common_fix.h&quot;</code><br />
<code>#include &quot;<a class="el" href="_f_d_k__audio_8h_source.html">FDK_audio.h</a>&quot;</code><br />
<code>#include &quot;FDK_bitstream.h&quot;</code><br />
</div>
<p><a href="pcmdmx__lib_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a9c448cf96e9a09a01226f5f99d603f2e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pcmdmx__lib_8h.html#a9c448cf96e9a09a01226f5f99d603f2e">PCMDMX_IS_FATAL_ERROR</a>(err)</td></tr>
<tr class="separator:a9c448cf96e9a09a01226f5f99d603f2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5caed9c4f05815f90375e401da31ec11"><td class="memItemLeft" align="right" valign="top"><a id="a5caed9c4f05815f90375e401da31ec11"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>DMX_PCM</b>&#160;&#160;&#160;FIXP_DBL</td></tr>
<tr class="separator:a5caed9c4f05815f90375e401da31ec11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a655f84e4fa7c8e79f798c5154c209760"><td class="memItemLeft" align="right" valign="top"><a id="a655f84e4fa7c8e79f798c5154c209760"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>DMX_PCMF</b>&#160;&#160;&#160;FIXP_DBL</td></tr>
<tr class="separator:a655f84e4fa7c8e79f798c5154c209760"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6460de4a5b3f82e32eef83ec156018ef"><td class="memItemLeft" align="right" valign="top"><a id="a6460de4a5b3f82e32eef83ec156018ef"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>DMX_PCM_BITS</b>&#160;&#160;&#160;DFRACT_BITS</td></tr>
<tr class="separator:a6460de4a5b3f82e32eef83ec156018ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ac1b77389f24b82a6bf1b784bad17d5"><td class="memItemLeft" align="right" valign="top"><a id="a5ac1b77389f24b82a6bf1b784bad17d5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FX_DMX2FX_PCM</b>(x)&#160;&#160;&#160;FX_DBL2FX_PCM((FIXP_DBL)(x))</td></tr>
<tr class="separator:a5ac1b77389f24b82a6bf1b784bad17d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga68dda2e0fecb9087acb5583b99feb958"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pcm_dmx_reset_flags.html#ga68dda2e0fecb9087acb5583b99feb958">PCMDMX_RESET_PARAMS</a>&#160;&#160;&#160;(1)</td></tr>
<tr class="separator:ga68dda2e0fecb9087acb5583b99feb958"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac5e585345cc70ebe9dfc8fdce4483480"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pcm_dmx_reset_flags.html#gac5e585345cc70ebe9dfc8fdce4483480">PCMDMX_RESET_BS_DATA</a>&#160;&#160;&#160;(2)</td></tr>
<tr class="separator:gac5e585345cc70ebe9dfc8fdce4483480"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacd6715247cb01301b190a9e6c40d6171"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pcm_dmx_reset_flags.html#gacd6715247cb01301b190a9e6c40d6171">PCMDMX_RESET_FULL</a>&#160;&#160;&#160;(<a class="el" href="group__pcm_dmx_reset_flags.html#ga68dda2e0fecb9087acb5583b99feb958">PCMDMX_RESET_PARAMS</a> | <a class="el" href="group__pcm_dmx_reset_flags.html#gac5e585345cc70ebe9dfc8fdce4483480">PCMDMX_RESET_BS_DATA</a>)</td></tr>
<tr class="separator:gacd6715247cb01301b190a9e6c40d6171"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:aa04e5c022bac88969ec7bd4457cde0f1"><td class="memItemLeft" align="right" valign="top"><a id="aa04e5c022bac88969ec7bd4457cde0f1"></a>
typedef struct <a class="el" href="struct_p_c_m___d_m_x___i_n_s_t_a_n_c_e.html">PCM_DMX_INSTANCE</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>HANDLE_PCM_DOWNMIX</b></td></tr>
<tr class="separator:aa04e5c022bac88969ec7bd4457cde0f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a2e4de9a9e2feb02ceaa084574e65ec30"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a> { <br />
&#160;&#160;<a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30ad523af3e7d045f62896c0dbfa6910f94">PCMDMX_OK</a> = 0x0
, <a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30a7981b21dbd98c7d5fb9e0ebe59406713">PCMDMX_UNSUPPORTED</a>
, <b>pcm_dmx_fatal_error_start</b>
, <a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30a9c852dc9b55fc27752cbdf943f748e14">PCMDMX_OUT_OF_MEMORY</a>
, <br />
&#160;&#160;<b>pcm_dmx_fatal_error_end</b>
, <a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30a014494b160849ff8e432858ca57c07b1">PCMDMX_INVALID_HANDLE</a>
, <a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30a4d83fb56c6902e57e65d9b4343505ce3">PCMDMX_INVALID_ARGUMENT</a>
, <a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30ab64abac069d03077d989a8a4c2b1b27d">PCMDMX_INVALID_CH_CONFIG</a>
, <br />
&#160;&#160;<a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30aa81f5b4467e5a667e5d44318e140ecf9">PCMDMX_INVALID_MODE</a>
, <a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30aba9d7dc16afaef459d68cfd2ad9adccd">PCMDMX_UNKNOWN_PARAM</a>
, <a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30a5cb7f3d59af9dcbe80627b1861e8e880">PCMDMX_UNABLE_TO_SET_PARAM</a>
, <a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30a6068a58e1017872381a5576e220e6f15">PCMDMX_CORRUPT_ANC_DATA</a>
, <br />
&#160;&#160;<a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30a6703ce2b723ffb359f2e4cbd6161ef2e">PCMDMX_OUTPUT_BUFFER_TOO_SMALL</a>
<br />
 }</td></tr>
<tr class="separator:a2e4de9a9e2feb02ceaa084574e65ec30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b6a9f41fe77aa509f4d0f90edcea7bc"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pcmdmx__lib_8h.html#a9b6a9f41fe77aa509f4d0f90edcea7bc">PCMDMX_PARAM</a> { <br />
&#160;&#160;<a class="el" href="pcmdmx__lib_8h.html#a9b6a9f41fe77aa509f4d0f90edcea7bca4973bd4d2e5fbab6754dc64ef3af3241">DMX_PROFILE_SETTING</a>
, <a class="el" href="pcmdmx__lib_8h.html#a9b6a9f41fe77aa509f4d0f90edcea7bca655bd92f85832230c3aca239b5ffbee1">DMX_BS_DATA_EXPIRY_FRAME</a>
, <a class="el" href="pcmdmx__lib_8h.html#a9b6a9f41fe77aa509f4d0f90edcea7bca9b8a1d951ef759b2092ef0b65b074882">DMX_BS_DATA_DELAY</a>
, <a class="el" href="pcmdmx__lib_8h.html#a9b6a9f41fe77aa509f4d0f90edcea7bca72807b0f0595162ff9f355e930909f1d">MIN_NUMBER_OF_OUTPUT_CHANNELS</a>
, <br />
&#160;&#160;<a class="el" href="pcmdmx__lib_8h.html#a9b6a9f41fe77aa509f4d0f90edcea7bca1e373a3021fe98260200afe75d1c72cc">MAX_NUMBER_OF_OUTPUT_CHANNELS</a>
, <a class="el" href="pcmdmx__lib_8h.html#a9b6a9f41fe77aa509f4d0f90edcea7bcabf59c39fb84ede481216af5ed1ceb4f9">DMX_DUAL_CHANNEL_MODE</a>
, <a class="el" href="pcmdmx__lib_8h.html#a9b6a9f41fe77aa509f4d0f90edcea7bca2bb5aae20c2a73f5c0ce0abcf388cd00">DMX_PSEUDO_SURROUND_MODE</a>
<br />
 }</td></tr>
<tr class="separator:a9b6a9f41fe77aa509f4d0f90edcea7bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52df3f17c86198d717ca4b535f48d76a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pcmdmx__lib_8h.html#a52df3f17c86198d717ca4b535f48d76a">DMX_PROFILE_TYPE</a> { <a class="el" href="pcmdmx__lib_8h.html#a52df3f17c86198d717ca4b535f48d76aa0a0365c38e50765555917783c9140ac2">DMX_PRFL_STANDARD</a>
, <a class="el" href="pcmdmx__lib_8h.html#a52df3f17c86198d717ca4b535f48d76aa761d8176a3902babf648b2047d4c9b6f">DMX_PRFL_MATRIX_MIX</a>
, <a class="el" href="pcmdmx__lib_8h.html#a52df3f17c86198d717ca4b535f48d76aa033393ab687bd077469928a5e180cd6e">DMX_PRFL_FORCE_MATRIX_MIX</a>
, <a class="el" href="pcmdmx__lib_8h.html#a52df3f17c86198d717ca4b535f48d76aa18f52f3a6fa08ffebb9d1a1f1732c59c">DMX_PRFL_ARIB_JAPAN</a>
 }</td></tr>
<tr class="separator:a52df3f17c86198d717ca4b535f48d76a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a750cd0b254fee0d3a99e3c4a79f87bb7"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pcmdmx__lib_8h.html#a750cd0b254fee0d3a99e3c4a79f87bb7">PSEUDO_SURROUND_MODE</a> { <a class="el" href="pcmdmx__lib_8h.html#a750cd0b254fee0d3a99e3c4a79f87bb7a1a51341975c3034c3e913117c2181018">NEVER_DO_PS_DMX</a>
, <a class="el" href="pcmdmx__lib_8h.html#a750cd0b254fee0d3a99e3c4a79f87bb7af31f103f3ed0fb2268ca092fdf7321bc">AUTO_PS_DMX</a> = 0
, <a class="el" href="pcmdmx__lib_8h.html#a750cd0b254fee0d3a99e3c4a79f87bb7a76a6f549406cb833ea1e0dd7bba33afe">FORCE_PS_DMX</a>
 }</td></tr>
<tr class="separator:a750cd0b254fee0d3a99e3c4a79f87bb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a404e17333209e730c5e7ce02e0ee0a90"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pcmdmx__lib_8h.html#a404e17333209e730c5e7ce02e0ee0a90">DUAL_CHANNEL_MODE</a> { <a class="el" href="pcmdmx__lib_8h.html#a404e17333209e730c5e7ce02e0ee0a90a47c2e412fef6299bb4d5dfd2187a72a5">STEREO_MODE</a> = 0x0
, <a class="el" href="pcmdmx__lib_8h.html#a404e17333209e730c5e7ce02e0ee0a90a4765c4317b0c7104bd008a946a57932f">CH1_MODE</a> = 0x1
, <a class="el" href="pcmdmx__lib_8h.html#a404e17333209e730c5e7ce02e0ee0a90a09d81e5c5b64c13bcf63a32cf092ca3e">CH2_MODE</a> = 0x2
, <a class="el" href="pcmdmx__lib_8h.html#a404e17333209e730c5e7ce02e0ee0a90abd71d5376e75532fbd5e6b98ed5b4b13">MIXED_MODE</a> = 0x3
 }</td></tr>
<tr class="separator:a404e17333209e730c5e7ce02e0ee0a90"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a96b34e1ab4e59ea55c1ec00f96aeeefd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pcmdmx__lib_8h.html#a96b34e1ab4e59ea55c1ec00f96aeeefd">pcmDmx_Open</a> (<a class="el" href="struct_p_c_m___d_m_x___i_n_s_t_a_n_c_e.html">HANDLE_PCM_DOWNMIX</a> *pSelf)</td></tr>
<tr class="separator:a96b34e1ab4e59ea55c1ec00f96aeeefd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a427ea35ee84316cd28197a74d66a3a12"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pcmdmx__lib_8h.html#a427ea35ee84316cd28197a74d66a3a12">pcmDmx_SetParam</a> (<a class="el" href="struct_p_c_m___d_m_x___i_n_s_t_a_n_c_e.html">HANDLE_PCM_DOWNMIX</a> self, const <a class="el" href="pcmdmx__lib_8h.html#a9b6a9f41fe77aa509f4d0f90edcea7bc">PCMDMX_PARAM</a> param, const <a class="el" href="machine__type_8h.html#a4cf9af43a95c45c3d469658098dfbe1a">INT</a> value)</td></tr>
<tr class="separator:a427ea35ee84316cd28197a74d66a3a12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb9c862a15bffac74aa90679ee059f4f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pcmdmx__lib_8h.html#aeb9c862a15bffac74aa90679ee059f4f">pcmDmx_GetParam</a> (<a class="el" href="struct_p_c_m___d_m_x___i_n_s_t_a_n_c_e.html">HANDLE_PCM_DOWNMIX</a> self, const <a class="el" href="pcmdmx__lib_8h.html#a9b6a9f41fe77aa509f4d0f90edcea7bc">PCMDMX_PARAM</a> param, <a class="el" href="machine__type_8h.html#a4cf9af43a95c45c3d469658098dfbe1a">INT</a> *const pValue)</td></tr>
<tr class="separator:aeb9c862a15bffac74aa90679ee059f4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2de9c10da81e3bc4350bcfae18fa787e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pcmdmx__lib_8h.html#a2de9c10da81e3bc4350bcfae18fa787e">pcmDmx_ReadDvbAncData</a> (<a class="el" href="struct_p_c_m___d_m_x___i_n_s_t_a_n_c_e.html">HANDLE_PCM_DOWNMIX</a> self, <a class="el" href="machine__type_8h.html#aed5a2dbe32af3a91203f0f5e8697e873">UCHAR</a> *pAncDataBuf, <a class="el" href="machine__type_8h.html#afff0ab3629a68bc1bb3b2a2f4296173f">UINT</a> ancDataBytes, int isMpeg2)</td></tr>
<tr class="separator:a2de9c10da81e3bc4350bcfae18fa787e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee1e22d0ade428e41fd23328d3186811"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pcmdmx__lib_8h.html#aee1e22d0ade428e41fd23328d3186811">pcmDmx_SetMatrixMixdownFromPce</a> (<a class="el" href="struct_p_c_m___d_m_x___i_n_s_t_a_n_c_e.html">HANDLE_PCM_DOWNMIX</a> self, int matrixMixdownPresent, int matrixMixdownIdx, int pseudoSurroundEnable)</td></tr>
<tr class="separator:aee1e22d0ade428e41fd23328d3186811"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a577a880e5e34b666bcc7cef12ca728b3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pcmdmx__lib_8h.html#a577a880e5e34b666bcc7cef12ca728b3">pcmDmx_Reset</a> (<a class="el" href="struct_p_c_m___d_m_x___i_n_s_t_a_n_c_e.html">HANDLE_PCM_DOWNMIX</a> self, <a class="el" href="machine__type_8h.html#afff0ab3629a68bc1bb3b2a2f4296173f">UINT</a> flags)</td></tr>
<tr class="separator:a577a880e5e34b666bcc7cef12ca728b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad63076ae1fef2a2dc1aa9025a4969104"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pcmdmx__lib_8h.html#ad63076ae1fef2a2dc1aa9025a4969104">pcmDmx_ApplyFrame</a> (<a class="el" href="struct_p_c_m___d_m_x___i_n_s_t_a_n_c_e.html">HANDLE_PCM_DOWNMIX</a> self, DMX_PCM *pPcmBuf, const int pcmBufSize, <a class="el" href="machine__type_8h.html#afff0ab3629a68bc1bb3b2a2f4296173f">UINT</a> frameSize, <a class="el" href="machine__type_8h.html#a4cf9af43a95c45c3d469658098dfbe1a">INT</a> *nChannels, <a class="el" href="machine__type_8h.html#a4cf9af43a95c45c3d469658098dfbe1a">INT</a> fInterleaved, <a class="el" href="_f_d_k__audio_8h.html#ae2e99eec9b2aff4efbe944c0613a22e2">AUDIO_CHANNEL_TYPE</a> channelType[], <a class="el" href="machine__type_8h.html#aed5a2dbe32af3a91203f0f5e8697e873">UCHAR</a> channelIndices[], const <a class="el" href="struct_f_d_k__channel_map_descr.html">FDK_channelMapDescr</a> *const mapDescr, <a class="el" href="machine__type_8h.html#a4cf9af43a95c45c3d469658098dfbe1a">INT</a> *pDmxOutScale)</td></tr>
<tr class="separator:ad63076ae1fef2a2dc1aa9025a4969104"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c66c6b945afec0ac845f47c9bc9f06a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pcmdmx__lib_8h.html#a5c66c6b945afec0ac845f47c9bc9f06a">pcmDmx_Close</a> (<a class="el" href="struct_p_c_m___d_m_x___i_n_s_t_a_n_c_e.html">HANDLE_PCM_DOWNMIX</a> *pSelf)</td></tr>
<tr class="separator:a5c66c6b945afec0ac845f47c9bc9f06a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a058b9bac50aba465518bf5d433a5e635"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pcmdmx__lib_8h.html#a058b9bac50aba465518bf5d433a5e635">pcmDmx_GetLibInfo</a> (<a class="el" href="struct_l_i_b___i_n_f_o.html">LIB_INFO</a> *info)</td></tr>
<tr class="separator:a058b9bac50aba465518bf5d433a5e635"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>FDK PCM audio mixdown library interface header file. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a9c448cf96e9a09a01226f5f99d603f2e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c448cf96e9a09a01226f5f99d603f2e">&#9670;&nbsp;</a></span>PCMDMX_IS_FATAL_ERROR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PCMDMX_IS_FATAL_ERROR</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">err</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">  ((((err) &gt;= pcm_dmx_fatal_error_start) &amp;&amp; \</div>
<div class="line">    ((err) &lt;= pcm_dmx_fatal_error_end))     \</div>
<div class="line">       ? 1                                  \</div>
<div class="line">       : 0)</div>
</div><!-- fragment --><p>Macro to identify fatal errors. </p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="a52df3f17c86198d717ca4b535f48d76a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a52df3f17c86198d717ca4b535f48d76a">&#9670;&nbsp;</a></span>DMX_PROFILE_TYPE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="pcmdmx__lib_8h.html#a52df3f17c86198d717ca4b535f48d76a">DMX_PROFILE_TYPE</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Valid value list for parameter <a class="el" href="pcmdmx__lib_8h.html#a9b6a9f41fe77aa509f4d0f90edcea7bca4973bd4d2e5fbab6754dc64ef3af3241">DMX_PROFILE_SETTING</a>. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a52df3f17c86198d717ca4b535f48d76aa0a0365c38e50765555917783c9140ac2"></a>DMX_PRFL_STANDARD&#160;</td><td class="fielddoc"><p>The standard profile creates mixdown signals based on the advanced downmix metadata (from a DSE), equations and default values defined in ISO/IEC 14496:3 Ammendment 4. Any other (legacy) downmix metadata will be ignored. <br  />
 </p>
</td></tr>
<tr><td class="fieldname"><a id="a52df3f17c86198d717ca4b535f48d76aa761d8176a3902babf648b2047d4c9b6f"></a>DMX_PRFL_MATRIX_MIX&#160;</td><td class="fielddoc"><p>This profile behaves just as the standard profile if advanced downmix metadata (from a DSE) is available. If not, the matrix_mixdown information embedded in the program configuration element (PCE) will be applied. If neither is the case the module creates a mixdown using the default coefficients defined in MPEG-4 Ammendment 4. The profile can be used e.g. to support legacy digital TV (e.g. DVB) streams. <br  />
 </p>
</td></tr>
<tr><td class="fieldname"><a id="a52df3f17c86198d717ca4b535f48d76aa033393ab687bd077469928a5e180cd6e"></a>DMX_PRFL_FORCE_MATRIX_MIX&#160;</td><td class="fielddoc"><p>Similar to the <a class="el" href="pcmdmx__lib_8h.html#a52df3f17c86198d717ca4b535f48d76aa761d8176a3902babf648b2047d4c9b6f">DMX_PRFL_MATRIX_MIX</a> profile but if both the advanced (DSE) and the legacy (PCE) MPEG downmix metadata are available the latter will be applied. <br  />
 </p>
</td></tr>
<tr><td class="fieldname"><a id="a52df3f17c86198d717ca4b535f48d76aa18f52f3a6fa08ffebb9d1a1f1732c59c"></a>DMX_PRFL_ARIB_JAPAN&#160;</td><td class="fielddoc"><p>Downmix creation as described in ABNT NBR 15602-2. But if advanced downmix metadata is available it will be prefered. <br  />
 </p>
</td></tr>
</table>

</div>
</div>
<a id="a404e17333209e730c5e7ce02e0ee0a90"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a404e17333209e730c5e7ce02e0ee0a90">&#9670;&nbsp;</a></span>DUAL_CHANNEL_MODE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="pcmdmx__lib_8h.html#a404e17333209e730c5e7ce02e0ee0a90">DUAL_CHANNEL_MODE</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Valid value list for parameter <a class="el" href="pcmdmx__lib_8h.html#a9b6a9f41fe77aa509f4d0f90edcea7bcabf59c39fb84ede481216af5ed1ceb4f9">DMX_DUAL_CHANNEL_MODE</a>. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a404e17333209e730c5e7ce02e0ee0a90a47c2e412fef6299bb4d5dfd2187a72a5"></a>STEREO_MODE&#160;</td><td class="fielddoc"><p>Leave stereo signals as they are. </p>
</td></tr>
<tr><td class="fieldname"><a id="a404e17333209e730c5e7ce02e0ee0a90a4765c4317b0c7104bd008a946a57932f"></a>CH1_MODE&#160;</td><td class="fielddoc"><p>Create a dual mono output signal from channel 1. <br  />
 </p>
</td></tr>
<tr><td class="fieldname"><a id="a404e17333209e730c5e7ce02e0ee0a90a09d81e5c5b64c13bcf63a32cf092ca3e"></a>CH2_MODE&#160;</td><td class="fielddoc"><p>Create a dual mono output signal from channel 2. <br  />
 </p>
</td></tr>
<tr><td class="fieldname"><a id="a404e17333209e730c5e7ce02e0ee0a90abd71d5376e75532fbd5e6b98ed5b4b13"></a>MIXED_MODE&#160;</td><td class="fielddoc"><p>Create a dual mono output signal by mixing the two channels. <br  />
 </p>
</td></tr>
</table>

</div>
</div>
<a id="a2e4de9a9e2feb02ceaa084574e65ec30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e4de9a9e2feb02ceaa084574e65ec30">&#9670;&nbsp;</a></span>PCMDMX_ERROR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Error codes that can be returned by module interface functions. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a2e4de9a9e2feb02ceaa084574e65ec30ad523af3e7d045f62896c0dbfa6910f94"></a>PCMDMX_OK&#160;</td><td class="fielddoc"><p>No error happened. </p>
</td></tr>
<tr><td class="fieldname"><a id="a2e4de9a9e2feb02ceaa084574e65ec30a7981b21dbd98c7d5fb9e0ebe59406713"></a>PCMDMX_UNSUPPORTED&#160;</td><td class="fielddoc"><p>The requested feature/service is unavailable. This can occur if the module was built for a wrong configuration. <br  />
 </p>
</td></tr>
<tr><td class="fieldname"><a id="a2e4de9a9e2feb02ceaa084574e65ec30a9c852dc9b55fc27752cbdf943f748e14"></a>PCMDMX_OUT_OF_MEMORY&#160;</td><td class="fielddoc"><p>Not enough memory to set up an instance of the module. <br  />
 </p>
</td></tr>
<tr><td class="fieldname"><a id="a2e4de9a9e2feb02ceaa084574e65ec30a014494b160849ff8e432858ca57c07b1"></a>PCMDMX_INVALID_HANDLE&#160;</td><td class="fielddoc"><p>The given instance handle is not valid. <br  />
 </p>
</td></tr>
<tr><td class="fieldname"><a id="a2e4de9a9e2feb02ceaa084574e65ec30a4d83fb56c6902e57e65d9b4343505ce3"></a>PCMDMX_INVALID_ARGUMENT&#160;</td><td class="fielddoc"><p>One of the parameters handed over is invalid. </p>
</td></tr>
<tr><td class="fieldname"><a id="a2e4de9a9e2feb02ceaa084574e65ec30ab64abac069d03077d989a8a4c2b1b27d"></a>PCMDMX_INVALID_CH_CONFIG&#160;</td><td class="fielddoc"><p>The given channel configuration is not supported and thus no processing was performed. </p>
</td></tr>
<tr><td class="fieldname"><a id="a2e4de9a9e2feb02ceaa084574e65ec30aa81f5b4467e5a667e5d44318e140ecf9"></a>PCMDMX_INVALID_MODE&#160;</td><td class="fielddoc"><p>The set configuration/mode is not applicable. <br  />
 </p>
</td></tr>
<tr><td class="fieldname"><a id="a2e4de9a9e2feb02ceaa084574e65ec30aba9d7dc16afaef459d68cfd2ad9adccd"></a>PCMDMX_UNKNOWN_PARAM&#160;</td><td class="fielddoc"><p>The handed parameter is not known/supported. </p>
</td></tr>
<tr><td class="fieldname"><a id="a2e4de9a9e2feb02ceaa084574e65ec30a5cb7f3d59af9dcbe80627b1861e8e880"></a>PCMDMX_UNABLE_TO_SET_PARAM&#160;</td><td class="fielddoc"><p>Unable to set the specific parameter. Most probably the value ist out of range. </p>
</td></tr>
<tr><td class="fieldname"><a id="a2e4de9a9e2feb02ceaa084574e65ec30a6068a58e1017872381a5576e220e6f15"></a>PCMDMX_CORRUPT_ANC_DATA&#160;</td><td class="fielddoc"><p>The read ancillary data was corrupt. <br  />
 </p>
</td></tr>
<tr><td class="fieldname"><a id="a2e4de9a9e2feb02ceaa084574e65ec30a6703ce2b723ffb359f2e4cbd6161ef2e"></a>PCMDMX_OUTPUT_BUFFER_TOO_SMALL&#160;</td><td class="fielddoc"><p>The size of pcm output buffer is too small. <br  />
 </p>
</td></tr>
</table>

</div>
</div>
<a id="a9b6a9f41fe77aa509f4d0f90edcea7bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9b6a9f41fe77aa509f4d0f90edcea7bc">&#9670;&nbsp;</a></span>PCMDMX_PARAM</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="pcmdmx__lib_8h.html#a9b6a9f41fe77aa509f4d0f90edcea7bc">PCMDMX_PARAM</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Modules dynamic runtime parameters that can be handed to function <a class="el" href="pcmdmx__lib_8h.html#a427ea35ee84316cd28197a74d66a3a12">pcmDmx_SetParam()</a> and <a class="el" href="pcmdmx__lib_8h.html#aeb9c862a15bffac74aa90679ee059f4f">pcmDmx_GetParam()</a>. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a9b6a9f41fe77aa509f4d0f90edcea7bca4973bd4d2e5fbab6754dc64ef3af3241"></a>DMX_PROFILE_SETTING&#160;</td><td class="fielddoc"><p>Defines which equations, coefficients and default/ fallback values used for downmixing. See <a class="el" href="pcmdmx__lib_8h.html#a52df3f17c86198d717ca4b535f48d76a">DMX_PROFILE_TYPE</a> type for details. <br  />
 </p>
</td></tr>
<tr><td class="fieldname"><a id="a9b6a9f41fe77aa509f4d0f90edcea7bca655bd92f85832230c3aca239b5ffbee1"></a>DMX_BS_DATA_EXPIRY_FRAME&#160;</td><td class="fielddoc"><p>The number of frames without new metadata that have to go by before the bitstream data expires. The value 0 disables expiry. <br  />
 </p>
</td></tr>
<tr><td class="fieldname"><a id="a9b6a9f41fe77aa509f4d0f90edcea7bca9b8a1d951ef759b2092ef0b65b074882"></a>DMX_BS_DATA_DELAY&#160;</td><td class="fielddoc"><p>The number of delay frames of the output samples compared to the bitstream data. <br  />
 </p>
</td></tr>
<tr><td class="fieldname"><a id="a9b6a9f41fe77aa509f4d0f90edcea7bca72807b0f0595162ff9f355e930909f1d"></a>MIN_NUMBER_OF_OUTPUT_CHANNELS&#160;</td><td class="fielddoc"><p>The minimum number of output channels. For all input configurations that have less than the given channels the module will modify the output automatically to obtain the given number of output channels. Mono signals will be duplicated. If more than two output channels are desired the module just adds empty channels. The parameter value must be either -1, 0, 1, 2, 6 or 8. If the value is greater than zero and exceeds the value of parameter <a class="el" href="pcmdmx__lib_8h.html#a9b6a9f41fe77aa509f4d0f90edcea7bca1e373a3021fe98260200afe75d1c72cc">MAX_NUMBER_OF_OUTPUT_CHANNELS</a> the latter will be set to the same value. Both values -1 and 0 disable the feature. <br  />
 </p>
</td></tr>
<tr><td class="fieldname"><a id="a9b6a9f41fe77aa509f4d0f90edcea7bca1e373a3021fe98260200afe75d1c72cc"></a>MAX_NUMBER_OF_OUTPUT_CHANNELS&#160;</td><td class="fielddoc"><p>The maximum number of output channels. For all input configurations that have more than the given channels the module will apply a mixdown automatically to obtain the given number of output channels. The value must be either -1, 0, 1, 2, 6 or 8. If it's greater than zero and lower or equal than the value of <a class="el" href="pcmdmx__lib_8h.html#a9b6a9f41fe77aa509f4d0f90edcea7bca72807b0f0595162ff9f355e930909f1d">MIN_NUMBER_OF_OUTPUT_CHANNELS</a> parameter the latter will be set to the same value. The values -1 and 0 disable the feature. <br  />
 </p>
</td></tr>
<tr><td class="fieldname"><a id="a9b6a9f41fe77aa509f4d0f90edcea7bcabf59c39fb84ede481216af5ed1ceb4f9"></a>DMX_DUAL_CHANNEL_MODE&#160;</td><td class="fielddoc"><p>Downmix mode for two channel audio data. See type <a class="el" href="pcmdmx__lib_8h.html#a404e17333209e730c5e7ce02e0ee0a90">DUAL_CHANNEL_MODE</a> for details. <br  />
 </p>
</td></tr>
<tr><td class="fieldname"><a id="a9b6a9f41fe77aa509f4d0f90edcea7bca2bb5aae20c2a73f5c0ce0abcf388cd00"></a>DMX_PSEUDO_SURROUND_MODE&#160;</td><td class="fielddoc"><p>Defines how module handles pseudo surround compatible signals. See <a class="el" href="pcmdmx__lib_8h.html#a750cd0b254fee0d3a99e3c4a79f87bb7">PSEUDO_SURROUND_MODE</a> type for details. <br  />
 </p>
</td></tr>
</table>

</div>
</div>
<a id="a750cd0b254fee0d3a99e3c4a79f87bb7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a750cd0b254fee0d3a99e3c4a79f87bb7">&#9670;&nbsp;</a></span>PSEUDO_SURROUND_MODE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="pcmdmx__lib_8h.html#a750cd0b254fee0d3a99e3c4a79f87bb7">PSEUDO_SURROUND_MODE</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Valid value list for parameter <a class="el" href="pcmdmx__lib_8h.html#a9b6a9f41fe77aa509f4d0f90edcea7bca2bb5aae20c2a73f5c0ce0abcf388cd00">DMX_PSEUDO_SURROUND_MODE</a>. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a750cd0b254fee0d3a99e3c4a79f87bb7a1a51341975c3034c3e913117c2181018"></a>NEVER_DO_PS_DMX&#160;</td><td class="fielddoc"><p>Ignore any metadata and do never create a pseudo surround compatible downmix. (Default) <br  />
 </p>
</td></tr>
<tr><td class="fieldname"><a id="a750cd0b254fee0d3a99e3c4a79f87bb7af31f103f3ed0fb2268ca092fdf7321bc"></a>AUTO_PS_DMX&#160;</td><td class="fielddoc"><p>Create a pseudo surround compatible downmix only if signalled in bitstreams meta data. </p>
</td></tr>
<tr><td class="fieldname"><a id="a750cd0b254fee0d3a99e3c4a79f87bb7a76a6f549406cb833ea1e0dd7bba33afe"></a>FORCE_PS_DMX&#160;</td><td class="fielddoc"><p>Always create a pseudo surround compatible downmix. CAUTION: This can lead to excessive signal cancellations and signal level differences for non-compatible signals. <br  />
 </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ad63076ae1fef2a2dc1aa9025a4969104"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad63076ae1fef2a2dc1aa9025a4969104">&#9670;&nbsp;</a></span>pcmDmx_ApplyFrame()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a> pcmDmx_ApplyFrame </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_p_c_m___d_m_x___i_n_s_t_a_n_c_e.html">HANDLE_PCM_DOWNMIX</a>&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DMX_PCM *&#160;</td>
          <td class="paramname"><em>pPcmBuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>pcmBufSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="machine__type_8h.html#afff0ab3629a68bc1bb3b2a2f4296173f">UINT</a>&#160;</td>
          <td class="paramname"><em>frameSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="machine__type_8h.html#a4cf9af43a95c45c3d469658098dfbe1a">INT</a> *&#160;</td>
          <td class="paramname"><em>nChannels</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="machine__type_8h.html#a4cf9af43a95c45c3d469658098dfbe1a">INT</a>&#160;</td>
          <td class="paramname"><em>fInterleaved</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="_f_d_k__audio_8h.html#ae2e99eec9b2aff4efbe944c0613a22e2">AUDIO_CHANNEL_TYPE</a>&#160;</td>
          <td class="paramname"><em>channelType</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="machine__type_8h.html#aed5a2dbe32af3a91203f0f5e8697e873">UCHAR</a>&#160;</td>
          <td class="paramname"><em>channelIndices</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="struct_f_d_k__channel_map_descr.html">FDK_channelMapDescr</a> *const&#160;</td>
          <td class="paramname"><em>mapDescr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="machine__type_8h.html#a4cf9af43a95c45c3d469658098dfbe1a">INT</a> *&#160;</td>
          <td class="paramname"><em>pDmxOutScale</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Create a mixdown, bypass or extend the output signal depending on the modules settings and the respective given input configuration.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">self</td><td>Handle of PCM downmix module instance. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">pPcmBuf</td><td>Pointer to time buffer with PCM samples. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pcmBufSize</td><td>Size of pPcmBuf buffer. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">frameSize</td><td>The I/O block size which is the number of samples per channel. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">nChannels</td><td>Pointer to buffer that holds the number of input channels and where the amount of output channels is written to. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fInterleaved</td><td>Input and output samples are processed interleaved. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">channelType</td><td>Array were the corresponding channel type for each output audio channel is stored into. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">channelIndices</td><td>Array were the corresponding channel type index for each output audio channel is stored into. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">mapDescr</td><td>Pointer to a FDK channel mapping descriptor that contains the channel mapping to be used. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">pDmxOutScale</td><td>Pointer on a field receiving the scale factor that has to be applied on all samples afterwards. If the handed pointer is NULL the final scaling is done internally. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns an error code of type <a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a>.</dd></dl>
<p>Apply down or up mixing. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">Handle</td><td>of PCM downmix module instance. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">Pointer</td><td>to buffer that hold the time domain signal. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">Pointer</td><td>where the amount of output samples is returned into. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">Size</td><td>of pPcmBuf. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">Pointer</td><td>where the amount of output channels is returned into. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">Input</td><td>and output samples are processed interleaved. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">Array</td><td>where the corresponding channel type for each output audio channel is stored into. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">Array</td><td>where the corresponding channel type index for each output audio channel is stored into. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">Array</td><td>containing the out channel mapping to be used (From MPEG PCE ordering to whatever is required). </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">Pointer</td><td>on a field receiving the scale factor that has to be applied on all samples afterwards. If the handed pointer is NULL scaling is done internally. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns an error code. </dd></dl>

</div>
</div>
<a id="a5c66c6b945afec0ac845f47c9bc9f06a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c66c6b945afec0ac845f47c9bc9f06a">&#9670;&nbsp;</a></span>pcmDmx_Close()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a> pcmDmx_Close </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_p_c_m___d_m_x___i_n_s_t_a_n_c_e.html">HANDLE_PCM_DOWNMIX</a> *&#160;</td>
          <td class="paramname"><em>pSelf</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Close an instance of the PCM downmix module. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">pSelf</td><td>Pointer to a buffer containing the handle of the instance. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns an error code of type <a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a>.</dd></dl>
<p>Close an instance of the PCM downmix module. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">Pointer</td><td>to a buffer containing the handle of the instance. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns an error code. </dd></dl>

</div>
</div>
<a id="a058b9bac50aba465518bf5d433a5e635"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a058b9bac50aba465518bf5d433a5e635">&#9670;&nbsp;</a></span>pcmDmx_GetLibInfo()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a> pcmDmx_GetLibInfo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_l_i_b___i_n_f_o.html">LIB_INFO</a> *&#160;</td>
          <td class="paramname"><em>info</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Get library info for this module. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">info</td><td>Pointer to an allocated <a class="el" href="struct_l_i_b___i_n_f_o.html">LIB_INFO</a> structure. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns an error code of type <a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a>.</dd></dl>
<p>Get library info for this module. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">Pointer</td><td>to an allocated <a class="el" href="struct_l_i_b___i_n_f_o.html">LIB_INFO</a> structure. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns an error code. </dd></dl>

</div>
</div>
<a id="aeb9c862a15bffac74aa90679ee059f4f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeb9c862a15bffac74aa90679ee059f4f">&#9670;&nbsp;</a></span>pcmDmx_GetParam()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a> pcmDmx_GetParam </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_p_c_m___d_m_x___i_n_s_t_a_n_c_e.html">HANDLE_PCM_DOWNMIX</a>&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="pcmdmx__lib_8h.html#a9b6a9f41fe77aa509f4d0f90edcea7bc">PCMDMX_PARAM</a>&#160;</td>
          <td class="paramname"><em>param</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="machine__type_8h.html#a4cf9af43a95c45c3d469658098dfbe1a">INT</a> *const&#160;</td>
          <td class="paramname"><em>pValue</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Get one parameter value of a single PCM downmix module instance. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">self</td><td>Handle of PCM downmix module instance. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">param</td><td>Parameter to query. Can be one from the <a class="el" href="pcmdmx__lib_8h.html#a9b6a9f41fe77aa509f4d0f90edcea7bc">PCMDMX_PARAM</a> list. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">pValue</td><td>Pointer to buffer receiving the parameter value. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns an error code of type <a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a>.</dd></dl>
<p>Get one parameter value of one PCM downmix module instance. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">Handle</td><td>of PCM downmix module instance. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">Parameter</td><td>to be set. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">Pointer</td><td>to buffer receiving the parameter value. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns an error code. </dd></dl>

</div>
</div>
<a id="a96b34e1ab4e59ea55c1ec00f96aeeefd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a96b34e1ab4e59ea55c1ec00f96aeeefd">&#9670;&nbsp;</a></span>pcmDmx_Open()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a> pcmDmx_Open </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_p_c_m___d_m_x___i_n_s_t_a_n_c_e.html">HANDLE_PCM_DOWNMIX</a> *&#160;</td>
          <td class="paramname"><em>pSelf</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Open and initialize an instance of the PCM downmix module </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">pSelf</td><td>Pointer to a buffer receiving the handle of the new instance. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns an error code of type <a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a>.</dd></dl>
<p>Open and initialize an instance of the PCM downmix module </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">Pointer</td><td>to a buffer receiving the handle of the new instance. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns an error code. </dd></dl>

</div>
</div>
<a id="a2de9c10da81e3bc4350bcfae18fa787e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2de9c10da81e3bc4350bcfae18fa787e">&#9670;&nbsp;</a></span>pcmDmx_ReadDvbAncData()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a> pcmDmx_ReadDvbAncData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_p_c_m___d_m_x___i_n_s_t_a_n_c_e.html">HANDLE_PCM_DOWNMIX</a>&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="machine__type_8h.html#aed5a2dbe32af3a91203f0f5e8697e873">UCHAR</a> *&#160;</td>
          <td class="paramname"><em>pAncDataBuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="machine__type_8h.html#afff0ab3629a68bc1bb3b2a2f4296173f">UINT</a>&#160;</td>
          <td class="paramname"><em>ancDataBytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>isMpeg2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Read from a given ancillary data buffer and extract the relevant downmix meta-data. The function can handle both data specified in ETSI TS 101 154 or ISO/IEC 14496-3:2009/Amd.4:2013. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">self</td><td>Handle of PCM downmix instance. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pAncDataBuf</td><td>Pointer to ancillary buffer holding the data. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ancDataBytes</td><td>Size of ancillary data in bytes. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">isMpeg2</td><td>Flag indicating wheter the ancillary data is from a MPEG-1/2 or a MPEG-4 stream. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns an error code of type <a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a>. </dd></dl>

</div>
</div>
<a id="a577a880e5e34b666bcc7cef12ca728b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a577a880e5e34b666bcc7cef12ca728b3">&#9670;&nbsp;</a></span>pcmDmx_Reset()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a> pcmDmx_Reset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_p_c_m___d_m_x___i_n_s_t_a_n_c_e.html">HANDLE_PCM_DOWNMIX</a>&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="machine__type_8h.html#afff0ab3629a68bc1bb3b2a2f4296173f">UINT</a>&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Reset the module. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">self</td><td>Handle of PCM downmix instance. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">flags</td><td>Flags telling which parts of the module shall be reset. See <a class="el" href="group__pcm_dmx_reset_flags.html">Modules reset flags</a> for details. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns an error code of type <a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a>.</dd></dl>
<p>Reset all static values like e.g. mixdown coefficients. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">Handle</td><td>of PCM downmix module instance. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">Flags</td><td>telling which parts of the module shall be reset. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns an error code. </dd></dl>

</div>
</div>
<a id="aee1e22d0ade428e41fd23328d3186811"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee1e22d0ade428e41fd23328d3186811">&#9670;&nbsp;</a></span>pcmDmx_SetMatrixMixdownFromPce()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a> pcmDmx_SetMatrixMixdownFromPce </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_p_c_m___d_m_x___i_n_s_t_a_n_c_e.html">HANDLE_PCM_DOWNMIX</a>&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>matrixMixdownPresent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>matrixMixdownIdx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pseudoSurroundEnable</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set the matrix mixdown information extracted from the PCE of an AAC bitstream. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">self</td><td>Handle of PCM downmix instance. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">matrixMixdownPresent</td><td>Matrix mixdown index present flag extracted from PCE. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">matrixMixdownIdx</td><td>The 2 bit matrix mixdown index extracted from PCE. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pseudoSurroundEnable</td><td>The pseudo surround enable flag extracted from PCE. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns an error code of type <a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a>.</dd></dl>
<p>Set the matrix mixdown information extracted from the PCE of an AAC bitstream. Note: Call only if matrix_mixdown_idx_present is true. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">Handle</td><td>of PCM downmix module instance. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">The</td><td>2 bit matrix mixdown index extracted from PCE. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">The</td><td>pseudo surround enable flag extracted from PCE. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns an error code. </dd></dl>

</div>
</div>
<a id="a427ea35ee84316cd28197a74d66a3a12"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a427ea35ee84316cd28197a74d66a3a12">&#9670;&nbsp;</a></span>pcmDmx_SetParam()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a> pcmDmx_SetParam </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_p_c_m___d_m_x___i_n_s_t_a_n_c_e.html">HANDLE_PCM_DOWNMIX</a>&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="pcmdmx__lib_8h.html#a9b6a9f41fe77aa509f4d0f90edcea7bc">PCMDMX_PARAM</a>&#160;</td>
          <td class="paramname"><em>param</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="machine__type_8h.html#a4cf9af43a95c45c3d469658098dfbe1a">INT</a>&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set one parameter for a single instance of the PCM downmix module. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">self</td><td>Handle of PCM downmix instance. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">param</td><td>Parameter to be set. Can be one from the <a class="el" href="pcmdmx__lib_8h.html#a9b6a9f41fe77aa509f4d0f90edcea7bc">PCMDMX_PARAM</a> list. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Parameter value. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns an error code of type <a class="el" href="pcmdmx__lib_8h.html#a2e4de9a9e2feb02ceaa084574e65ec30">PCMDMX_ERROR</a>.</dd></dl>
<p>Set one parameter for one instance of the PCM downmix module. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">Handle</td><td>of PCM downmix module instance. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">Parameter</td><td>to be set. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">Parameter</td><td>value. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns an error code. </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>
